inspector/selector.c \
inspector/signals-list.c \
inspector/size-groups.c \
+ inspector/startrecording.c \
inspector/statistics.c \
inspector/strv-editor.c \
inspector/treewalk.c \
inspector/selector.h \
inspector/signals-list.h \
inspector/size-groups.h \
+ inspector/startrecording.h \
inspector/statistics.h \
inspector/strv-editor.h \
inspector/treewalk.h \
#include "recording.h"
#include "rendernodeview.h"
#include "renderrecording.h"
+#include "startrecording.h"
struct _GtkInspectorRecorderPrivate
{
GtkWidget *node_property_tree;
GtkTreeModel *render_node_properties;
- guint recording : 1;
+ GtkInspectorRecording *recording; /* start recording if recording or NULL if not */
};
enum {
GtkInspectorRecording *recording;
if (row)
- {
- recording = g_list_model_get_item (priv->recordings, gtk_list_box_row_get_index (row));
+ recording = g_list_model_get_item (priv->recordings, gtk_list_box_row_get_index (row));
+ else
+ recording = NULL;
+ if (GTK_INSPECTOR_IS_RENDER_RECORDING (recording))
+ {
gtk_render_node_view_set_render_node (GTK_RENDER_NODE_VIEW (priv->render_node_view),
gtk_inspector_render_recording_get_node (GTK_INSPECTOR_RENDER_RECORDING (recording)));
gtk_render_node_view_set_clip_region (GTK_RENDER_NODE_VIEW (priv->render_node_view),
GtkWidget *widget;
char *str;
- str = g_strdup_printf ("Frame at %lld", (long long) gtk_inspector_recording_get_timestamp (recording));
- widget = gtk_label_new (str);
- g_free (str);
- gtk_label_set_xalign (GTK_LABEL (widget), 0);
- gtk_widget_show_all (widget);
+ if (GTK_INSPECTOR_IS_RENDER_RECORDING (recording))
+ {
+ str = g_strdup_printf ("Frame at %lld", (long long) gtk_inspector_recording_get_timestamp (recording));
+ widget = gtk_label_new (str);
+ g_free (str);
+ gtk_label_set_xalign (GTK_LABEL (widget), 0);
+ gtk_widget_show_all (widget);
+ }
+ else
+ {
+ widget = gtk_label_new ("Start Recording");
+ gtk_label_set_xalign (GTK_LABEL (widget), 0);
+ gtk_widget_show_all (widget);
+
+ }
return widget;
}
switch (param_id)
{
case PROP_RECORDING:
- g_value_set_boolean (value, priv->recording);
+ g_value_set_boolean (value, priv->recording != NULL);
break;
default:
g_object_unref (priv->render_node_properties);
}
-void
-gtk_inspector_recorder_set_recording (GtkInspectorRecorder *recorder,
- gboolean recording)
-{
- GtkInspectorRecorderPrivate *priv = gtk_inspector_recorder_get_instance_private (recorder);
-
- if (priv->recording == recording)
- return;
-
- priv->recording = recording;
-
- g_object_notify_by_pspec (G_OBJECT (recorder), props[PROP_RECORDING]);
-}
-
-gboolean
-gtk_inspector_recorder_is_recording (GtkInspectorRecorder *recorder)
-{
- GtkInspectorRecorderPrivate *priv = gtk_inspector_recorder_get_instance_private (recorder);
-
- return priv->recording;
-}
-
static void
gtk_inspector_recorder_add_recording (GtkInspectorRecorder *recorder,
GtkInspectorRecording *recording)
}
}
+void
+gtk_inspector_recorder_set_recording (GtkInspectorRecorder *recorder,
+ gboolean recording)
+{
+ GtkInspectorRecorderPrivate *priv = gtk_inspector_recorder_get_instance_private (recorder);
+
+ if (gtk_inspector_recorder_is_recording (recorder) == recording)
+ return;
+
+ if (recording)
+ {
+ priv->recording = gtk_inspector_start_recording_new ();
+ gtk_inspector_recorder_add_recording (recorder, priv->recording);
+ }
+ else
+ {
+ g_clear_object (&priv->recording);
+ }
+
+ g_object_notify_by_pspec (G_OBJECT (recorder), props[PROP_RECORDING]);
+}
+
+gboolean
+gtk_inspector_recorder_is_recording (GtkInspectorRecorder *recorder)
+{
+ GtkInspectorRecorderPrivate *priv = gtk_inspector_recorder_get_instance_private (recorder);
+
+ return priv->recording != NULL;
+}
+
void
gtk_inspector_recorder_record_render (GtkInspectorRecorder *recorder,
GtkWidget *widget,
--- /dev/null
+/*
+ * Copyright (c) 2016 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include <glib/gi18n-lib.h>
+
+#include "startrecording.h"
+
+G_DEFINE_TYPE (GtkInspectorStartRecording, gtk_inspector_start_recording, GTK_TYPE_INSPECTOR_RECORDING)
+
+static void
+gtk_inspector_start_recording_finalize (GObject *object)
+{
+ //GtkInspectorStartRecording *recording = GTK_INSPECTOR_START_RECORDING (object);
+
+ G_OBJECT_CLASS (gtk_inspector_start_recording_parent_class)->finalize (object);
+}
+
+static void
+gtk_inspector_start_recording_class_init (GtkInspectorStartRecordingClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->finalize = gtk_inspector_start_recording_finalize;
+}
+
+static void
+gtk_inspector_start_recording_init (GtkInspectorStartRecording *vis)
+{
+}
+
+GtkInspectorRecording *
+gtk_inspector_start_recording_new (void)
+{
+ GtkInspectorStartRecording *recording;
+
+ recording = g_object_new (GTK_TYPE_INSPECTOR_START_RECORDING,
+ "timestamp", (gint64) 0,
+ NULL);
+
+ return GTK_INSPECTOR_RECORDING (recording);
+}
+
+// vim: set et sw=2 ts=2:
--- /dev/null
+/*
+ * Copyright (c) 2016 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _GTK_INSPECTOR_START_RECORDING_H_
+#define _GTK_INSPECTOR_START_RECORDING_H_
+
+#include <gdk/gdk.h>
+#include <gsk/gsk.h>
+
+#include "inspector/recording.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_INSPECTOR_START_RECORDING (gtk_inspector_start_recording_get_type())
+#define GTK_INSPECTOR_START_RECORDING(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GTK_TYPE_INSPECTOR_START_RECORDING, GtkInspectorStartRecording))
+#define GTK_INSPECTOR_START_RECORDING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GTK_TYPE_INSPECTOR_START_RECORDING, GtkInspectorStartRecordingClass))
+#define GTK_INSPECTOR_IS_START_RECORDING(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GTK_TYPE_INSPECTOR_START_RECORDING))
+#define GTK_INSPECTOR_IS_START_RECORDING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GTK_TYPE_INSPECTOR_START_RECORDING))
+#define GTK_INSPECTOR_START_RECORDING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GTK_TYPE_INSPECTOR_START_RECORDING, GtkInspectorStartRecordingClass))
+
+
+typedef struct _GtkInspectorStartRecordingPrivate GtkInspectorStartRecordingPrivate;
+
+typedef struct _GtkInspectorStartRecording
+{
+ GtkInspectorRecording parent;
+
+} GtkInspectorStartRecording;
+
+typedef struct _GtkInspectorStartRecordingClass
+{
+ GtkInspectorRecordingClass parent;
+} GtkInspectorStartRecordingClass;
+
+GType gtk_inspector_start_recording_get_type (void);
+
+GtkInspectorRecording *
+ gtk_inspector_start_recording_new (void);
+
+
+G_END_DECLS
+
+#endif // _GTK_INSPECTOR_START_RECORDING_H_
+
+// vim: set et sw=2 ts=2: